package com.itheima.ai.repository;

import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Component
public class InMemoryChatHistoryRepository implements ChatHistoryRepository{

    private final Map<String, List<String>> chatHistoryMap = new HashMap<>();

    @Override
    public void save(String type, String chatId) {
        //第一次添加 没有List 就先向ChatHistory中Put一下
        /*if(!chatHistoryMap.containsKey(type)){
            chatHistoryMap.put(type, new ArrayList<>());
        }
        List<String> chatIds = chatHistoryMap.get(type);*/
        List<String> chatIds = chatHistoryMap.computeIfAbsent(type, k -> new ArrayList<>());//简化写法
        if(chatIds.contains(chatId)){
            return;//如果存在就不加了（多次添加）
        }
        //不存在，添加
        chatIds.add(chatId);
    }

    @Override
    public List<String> getChatIds(String type) {
        //判断是否存在type对应的ChatIds 如果存在返回 不存在返回空集合
        /*List<String> chatIds = chatHistoryMap.get(type);
        return chatIds == null? List.of() : chatIds;*/
        return chatHistoryMap.getOrDefault(type, List.of());//简化写法
    }
}
